SPWSER page# 0001 next
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
SPWSER page# 0002 next prev
15: BEGIN SPWSER ↔ SUBTTL SPACEWAR SERVICE
16:
17:
18: AP2CHL←CAT(P2CH,\APRCHN)
19:
20:
21:
22: ↑SPWINI:
23: SETZM SPWGO
24: MOVE TAC,[XWD SPWGO,SPWGO+1]
25: BLT TAC,JBTST2+JOBN-1
26:
27: SYNINI SPWCSC
28:
29: CONI 404,SPWBUT
30: SETZM SPWACT
31: SETZM SPWUUF
32: SETZM SPWUUF+P2PID
33: SETZM SPWTMO
34: SETZM SPWTMO+P2PID
35: POPJ P,
SPWSER page# 0003 next prev
37:
38:
39:
40:
41:
42: ↑KILSPW:PUSH P,TAC
43: MOVSI TAC,SPWSNB
44: PUSHJ P,CLRSIN
45: POP P,TAC
46: PUSH P,TAC1
47: PSYNC SPWCSC
48: SKIPN JBTST2(J)
49: JRST KILSP1
50: IFN FTSTAT,<
51: PUSH P,TAC
52: MOVEI TAC,SPWSTA+7700
53: PUSHJ P,STAPUT
54: POP P,TAC
55: >
56: SKIPE SPWGO(J)
57: PUSHJ P,P1REL
58: SKIPE SP2GO(J)
59: PUSHJ P,P2REL
60: SETZM JBTST2(J)
61: KILSP1: XSYNC SPWCSC
62: POP P,TAC1
63: POPJ P,
64:
65: P1REL: SETZ TAC1,
66: MOVE TAC,TAC1
67: LDB TAC1,[POINT 6,SPWGO(TAC),5]
68: CAME TAC1,J
69: JUMPN TAC1,.-3
70: JUMPE TAC1,CPOPJ
71: LDB TAC1,[POINT 6,SPWGO(J),5]
72: DPB TAC1,[POINT 6,SPWGO(TAC),5]
73: SETZM SPWGO(J)
74: SOS SPWACT
75: POPJ P,
76:
77: P2REL: SETZ TAC1,
78: MOVE TAC,TAC1
79: LDB TAC1,[POINT 6,SP2GO(TAC),5]
80: CAME TAC1,J
81: JUMPN TAC1,.-3
82: JUMPE TAC1,CPOPJ
83: LDB TAC1,[POINT 6,SP2GO(J),5]
84: DPB TAC1,[POINT 6,SP2GO(TAC),5]
85: SETZM SP2GO(J)
86: SOS SPWACT
87: POPJ P,
88:
89: OFSPW: PUSHJ P,KILSPW
90: JSP TAC,UUOMES
91: ASCIZ /ATTEMPT TO INITIATE SPW JOB WITH ONE ALREADY RUNNING
92: UUO/
SPWSER page# 0004 next prev
94:
95:
96:
97:
98:
99: ↑SPWCON:
100: MOVE J,JOB(PID)
101: MOVEI TAC,(UUO)
102: JUMPN UCHN,SPW0
103: CAIN TAC,'SSW'
104: JRST KILSPW
105: SPW0: CAIGE TAC,140
106: JRST UADRER
107: XCTR XR,[MOVE TAC,(TAC)]
108:
109: TLNN UCHN,200000
110: JUMPL UCHN,SPW1
111: SKIPE SP2GO(J)
112: JRST OFSPW
113: SPW4H: SKIPL PALIVE+P2PID
114: JRST SPW4G
115: TLNN UCHN,200000
116: JRST SPW1
117: JUMPN PID,SPW4G
118: MOVEI TAC,[ASCIZ /
119: HUNG DEVICE: PDP-6
120: /]
121: PUSHJ P,HNGMES
122: JRST SPW4H
123:
124: SPW4G: AOS SPWACT
125: IFN FTSTAT, <
126: HRRZ TAC,UCHN
127: LSH TAC,6
128: TRO TAC,SPWSTA+4000
129: PUSHJ P,STAPUT
130: >
131: PSYNC SPWCSC
132: MOVSI DAT,SPWRUN
133: TLNE UCHN,40000
134: MOVSI DAT,SPWRUN!SPWNT2
135: IORM DAT,JBTST2(J)
136: TSO UCHN,SP2GO
137: DPB J,[POINT 6,SP2GO,5]
138: HRLM UCHN,SP2GO(J)
139: HRRM UUO,SP2GO(J)
140: XSYNC SPWCSC
141: JUMPGE UCHN,CPOPJ
142:
143: SPW1:
144: SKIPE SPWGO(J)
145: JRST OFSPW
146: AOS SPWACT
147: IFN FTSTAT, <
148: HRRZ TAC,UCHN
149: LSH TAC,6
150: TRO TAC,SPWSTA
151: PUSHJ P,STAPUT
152: >
153: PSYNC SPWCSC
154: MOVSI DAT,SPWRUN
155: TLNE UCHN,100000
156: MOVSI DAT,SPWRUN!SPWNT1
157: IORM DAT,JBTST2(J)
158: TSO UCHN,SPWGO
159: DPB J,[POINT 6,SPWGO,5]
160: HRLM UCHN,SPWGO(J)
161: HRRM UUO,SPWGO(J)
162: XSYNC SPWCSC
163: POPJ P,
SPWSER page# 0005 next prev
165:
166:
167: AC←DEVDAT
168: GO←DAT
169: A←DSER
170: B←UCHN
171: C←UUO
172: D←PROG
173:
174:
175:
176: ↑SPWP2: MOVEI AC,SPWB
177: MOVEI GO,SP2GO
178: JRST SPWPP
179:
180: ↑SPWP1: MOVEI AC,SPWA
181: MOVEI GO,SPWGO
182: SPWPP: PUSH P,JOB(PID)
183: SETOM SPWUUF(PID)
184: HRLI GO,J
185: MOVEI J,0
186: SPWPP3: PSYNC SPWCSC
187: LDB J,[POINT 6,@GO,5]
188: JUMPN J,SPWPP2
189: XSYNC SPWCSC
190: POP P,JOB(PID)
191: MOVE J,JOB(PID)
192: MOVE A,JBTADR(J)
193: MOVEM A,JOBADR(PID)
194: HLRZM A,USRREL(PID)
195: SETZM SPWUUF(PID)
196: JUMPE J,CPOPJ
197: PUSHJ P,GETPR
198: DATAO APR,TAC
199: POPJ P,
200:
201: SPWPP2: MOVE D,@GO
202: TRNE D,-1
203: SKIPL A,JBTST2(J)
204: JRST SPWPP5
205: JUMPN PID,SWPP2B
206: TLNN A,SPWST1
207: JRST SPWPP4
208: SKIPE SP2GO(J)
209: JRST SPWPP5
210: ADDI A,1
211: SWPP2A: HRRM A,JBTST2(J)
212: JRST SPWPP5
213:
214: SWPP2B: TLNN A,SPWST2
215: JRST SPWPP4
216: AOJA A,SWPP2A
217:
218: SPWPP9: DPB A,[POINT 4,D,13]
219: MOVEM D,@GO
220: SPWPP5: XSYNC SPWCSC
221: JRST SPWPP3
SPWSER page# 0006 next prev
223:
224:
225: SPWPP4: LDB A,[POINT 4,D,13]
226: LDB B,[POINT 4,D,17]
227: JUMPE B,[JUMPN A,SPWPP9
228: AOJA A,SPWPP0]
229: CAIGE A,-1(B)
230: AOJA A,SPWPP9
231: SETZ A,
232: SPWPP0: DPB A,[POINT 4,D,13]
233: MOVEM D,@GO
234: MOVE B,JBTST2(J)
235: HLLZS JBTST2(J)
236: TLNE B,SPWSUS
237: JRST SPWPP6
238: HRRZ B,B
239: JRST SPWPP8
240: SPWPP6: JUMPE PID,.+2
241: TLOA B,SPWSU2
242: TLO B,SPWSU1
243: MOVEM B,JBTST2(J)
244: MOVNI B,1
245: SPWPP8: MOVSI A,SPWNT1
246: JUMPE PID,.+2
247: MOVSI A,SPWNT2
248: TDNN A,JBTST2(J)
249: MOVEI A,JIFSEC/2
250: HRRZM A,SPWTMO(PID)
251: MOVE A,[JRST 2,@UUO0]
252: ADDI A,(PID)
253: MOVEM A,SPWXCT(PID)
254:
255: XSYNC SPWCSC
256: HRRZ A,AC
257: BLT A,17(AC)
258: SETZM A(AC)
259: HRRZ 17,D
260: HRLI 17,4000
261: PUSHJ P,GETPR
262: DATAO APR,TAC
263: MOVE 2,JBTADR(J)
264: TLZ 2,1777
265: MOVE 1,SPWBUT
266:
267: MOVN 15,J
268: MOVSI 2,400000
269: LSH 2,(15)
270: JUMPN PID,.+2
271: DATAO PI,2
272:
273: SETOM STIME(J)
274: MOVE 15,J
275: MOVE 2,JBTADR(J)
276: MOVE 7,JOBRL2(PROG)
277: MOVE 6,JBTSTS(J)
278: MOVE 3,B
279: MOVEI 4,1
280: SKIPE PID
281: MOVEI 4,2
282: SETZM 5
283: SKIPN P2NUM
284: JRST SIXDED
285: JUMPN PID,SIXTST
286: SKIPGE PALIVE+P2PID
287: SETOM 5
288: JRST 3,@17
289: SIXTST: SKIPGE PALIVE+P1PID
290: SIXDED: SETOM 5
291: JRST 3,@17
SPWSER page# 0007 next prev
293:
294:
295: ↑SPWINT:
296: CONI APR,A
297: TRNE A,ILM
298: TLO A,ILMSPW
299: TRNE A,NXM
300: TLO A,NXMSPW
301: TRNE A,POV
302: TLO A,POVSPW
303: CONO APR,531110+APRCHN
304: HRR A,APRCHL
305: MOVEM A,SPWA+A
306: MOVE PID,[P1PID]
307: JRST 10,SPWUUX
308:
309: ↑SPWERR:
310: MOVE J,JOB(PID)
311: MOVE A,UUOPC(J)
312: SKIPN PID
313: HRRZM A,SPWA+A
314: SKIPE PID
315: HRRZM A,SPWB+A
316: ↑SPWXIT:
317: MOVE P,SPWA+P
318: SKIPE PID
319: MOVE P,SPWB+P
320: AOBJP P,.+1
321: POP P,UUOPC(J)
322: JRST SPWUUX
323:
324: ↑SP2INT:
325: CONI APR,A
326: TRNE A,ILM
327: TLO A,ILMSPW
328: TRNE A,NXM
329: TLO A,NXMSPW
330: TRNE A,POV
331: TLO A,POVSPW
332: TRNE A,CNS
333: TLO A,CNSSPW
334: CONO APR,531110+APRCHN
335: HRR A,AP2CHL
336: MOVEM A,SPWB+A
337: MOVE PID,[P2PID]
338: JRST 10,SPWUUX
339:
340: ↑SPWUUO:
341:
342:
343:
344: JUMPN PID,SPWUUX
345: MOVE J,J+SPWA
346: SKIPE 17,UUOPTR(J)
347: JRST SPWUU3
348: SPWUU1: SKIPE 17,@UUOLOC(PID)
349: CAMN 17,[CALL]
350: JRST SPWUUX
351: HLRZ 17,17
352: CAIN 17,(<JRST 4,>)
353: JRST SPWUUX
354:
355:
356: SPWUU2: MOVEM J,JOB(PID)
357: MOVE PROG,JBTADR(J)
358: MOVEM PROG,JOBADR(PID)
359: HLRZM PROG,USRREL(PID)
360: MOVE P,SPWA+P
361:
362:
363: PUSH P,UUOPC(J)
364: MOVE DAT,UUO0(PID)
365: MOVE UUO,@UUOLOC(PID)
366: JRST UUOSY1
367:
368: SPWUU3: XCTR XR,[SKIPN SPWBLK+1(17)]
369: XCTR XR,[SKIPN SPWBLK+2(17)]
370: JRST SPWUU1
371: JRST SPWUU2
372:
373: ↑SPTMOE:
374: MOVEI PID,0
375: CONSO APR,MAOFF
376: MOVEI PID,P2PID
377: MOVSI A,ILLTMO
378: HRR A,SPWBLO(PID)
379: SKIPE PID
380: MOVEM A,SPWB+A
381: SKIPN PID
382: MOVEM A,SPWA+A
383: JRST SPWUUX
SPWSER page# 0008 next prev
385:
386:
387: ↑SPWUUX:
388: MOVSI 17,SPWA
389: SKIPE PID
390: MOVSI 17,SPWB
391: BLT 17,17
392: JUMPE A,SPWUU0
393: PSYNC SPWCSC
394: HLLZS @GO
395: TLO A,SPWERB
396: MOVEM A,JBTST2(J)
397: XSYNC SPWCSC
398: SPWUU0: JRST 2,@[SPWPPB]
399:
400: SPWPPB: PSYNC SPWCSC
401: SKIPN @GO
402: JRST SPWPPC
403: LDB A,[POINT 4,@GO,17]
404: JUMPN A,SPWPPC
405: JUMPN PID,SPWPPD
406: PUSHJ P,P1REL
407: SKIPE SP2GO(J)
408: JRST SPWPPC
409: JRST SPWPPE
410: SPWPPD: PUSHJ P,P2REL
411: SKIPN SPWGO(J)
412: SPWPPE: SETZM JBTST2(J)
413: SPWPPC: MOVE A,JBTST2(J)
414: JUMPN PID,SPWPPF
415: MOVSI D,SPWST1
416: SKIPN SP2GO(J)
417: MOVSI D,SPWST1!SPWST2
418: TLZE A,SPWSU1
419: TDO A,D
420: TLC A,SPWST1!SPWST2
421: TLCN A,SPWST1!SPWST2
422: TLZ A,SPWSUS
423: MOVEM A,JBTST2(J)
424: XSYNC SPWCSC
425: JRST SPWPP3
426: SPWPPF: MOVSI D,SPWST2
427: SKIPN SPWGO(J)
428: MOVSI D,SPWST1!SPWST2
429: TLZE A,SPWSU2
430: TDO A,D
431: TLC A,SPWST1!SPWST2
432: TLCN A,SPWST1!SPWST2
433: TLZ A,SPWSUS
434: MOVEM A,JBTST2(J)
435: XSYNC SPWCSC
436: JRST SPWPP3
437: BEND SPWSER
EOF: SPWSER end-of-file. cnt=7